import Vue from 'vue'
import VueRouter from 'vue-router';
// import {isLogin} from "../utils/user.js";
import routes from "./routes.js";
Vue.use(VueRouter)

// $router:VueRouter
// $route:当前路由对象


const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

// 全局路由守卫
// to:即将进入的目标路由
// from:当前导航离开的路由
// next:执行（放行）的函数
// router.beforeEach((to,from,next)=>{
//   // console.log(to);
//    if(to.meta.isAuth){//即将进入的目标路由（path:"/"）下面的meta中是否存在isAuth,并判断isAuth的值
//   //  如果为true，判断是否登录，如果登录成功服务器会返回一个token
//   // 判断是否有token决定是否进入登录页面
//      if(isLogin){//如果有token，则直接进入目标路由
//        next();
//      }else{//如果没有token，则跳转值登录页面
//        next("/login");
//       // next();
//      }
//    }else{//  如果为false，直接放行去目标路由
//      next();
//    }
// })
// router.beforeEach((to,from,next)=>{
//   var Token  =  localStorage.getItem("token")
//   if(to.name == 'Login'){
//     next()
//   }else{
//     if(Token){
//       next()
//     }else{
//       next("/login")
//     }
//   }
// })

// 定义路由栈
// 用于判断当前页面是否拥有上级页面
var routeStack = ['/'];

// 跳转路由的方法

// 切换顶层路由
function repaceRoute(path){
  routeStack.pop();//先删除
  routeStack.push(path);//再添加
  router.replace(path);//跳转页面（切换顶层组件）
}

// 跳转下级页面
// 两种方法
// 第一种 用path和query
// path:是跳转页面的地址
// params：传递的参数
function pushRouteByQuery(path,params){
  // console.log(params);
  routeStack.push(path);
  router.push({
    path:path,
    query:{
      params:params
    }
  })
}

// 第二种 用name和params
// name:是跳转页面路由的名字
// params:传递的参数
function pushRouteByName(path,params){
  routeStack.push(path);
  router.push({
    path:path,
    params:params
  })
}

// 返回上一级
function backRoute(){
  routeStack.pop();//先删除
  router.back();//在使用back（）方法
}

//router添加对应方法
router.repaceRoute = repaceRoute;//切换顶层
router.pushRouteByQuery= pushRouteByQuery;//跳转页面的方法
router.pushRouteByName = pushRouteByName;//跳转页面的方法
router.backRoute=backRoute;//返回上一级
router.routeStack = routeStack;

export default router
